記錄學習內容。
以下內容和截圖大多引用文章。
還不了解,內容可能有錯誤。
Implement Stack using Queues
https://www.geeksforgeeks.org/implement-stack-using-queue/
用兩個Queues ,q1、q2
主要是改,push (放東西)的部分。
步驟一 : q2.add(x); ,q2先把x放進去 。
步驟二 : q1 再把所有東西 一個一個放到 q2 。
最後
q1 變成 q2 (有東西的queue)
q2 變成 q1 (沒東西的queue)
//達成x 放到 stack top的效果
改 pop 的部分 :
把 q1不斷 deQueue (取元素) ,存到q2 。 q1留最後一個元素,代表最晚放進去的元素 ,但現在要最早拿出來(因為改成stack),所以不再存到q2 ,直接remove消失掉,才符合stack 。
最後 在交換q1 q2。
Implement a stack using single queue
https://www.geeksforgeeks.org/implement-a-stack-using-single-queue/
也可以只用一個queue來製作Stack 。
想法就是 原本 的順序顛倒 。
原本是 1 2 3 4(queue的rear ,代表最後放進來的)
變成 4 3 2 1 (這樣1 最早進來的 ,就被當成最後放進來的 ,當queue 要deQueue 時 ,就會是最後一個被deQueue的,達成stack效果)